x86/hvm: Revert per-domain APIC acceleration support
authorAndrew Cooper <andrew.cooper3@citrix.com>
Mon, 14 Nov 2022 21:47:59 +0000 (21:47 +0000)
committerAndrew Cooper <andrew.cooper3@citrix.com>
Thu, 17 Nov 2022 16:51:51 +0000 (16:51 +0000)
commite5ac68a0110cb43a3a0bc17d545ae7a0bd746ef9
tree0dd18e5a6fb6a14ecd21a6f3f43031169b47669a
parentf5d56f4b253072264efc0fece698a91779e362f5
x86/hvm: Revert per-domain APIC acceleration support

I was really hoping to avoid this, but its now too late in the 4.17 freeze and
we still don't have working fixes.

The in-Xen calculations for assistance capabilities are buggy.  For the
avoidance of doubt, the original intention was to be able to control every
aspect of a APIC acceleration so we could comprehensively test Xen's support,
as it has proved to be buggy time and time again.

Even after a protracted discussion on what the new API ought to mean, attempts
to apply it to the existing logic have been unsuccessful, proving that the
API/ABI is too complicated for most people to reason about.

This reverts most of:
  2ce11ce249a3981bac50914c6a90f681ad7a4222
  6b2b9b3405092c3ad38d7342988a584b8efa674c

leaving in place the non-APIC specific changes (minimal as they are).

This takes us back to the behaviour of Xen 4.16 where APIC acceleration is
configured on a per system basis.

This work will be revisted in due course.

Fixes: 2ce11ce249a3 ("x86/HVM: allow per-domain usage of hardware virtualized APIC")
Fixes: 6b2b9b340509 ("x86: report Interrupt Controller Virtualization capabilities")
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Acked-by: Jan Beulich <jbeulich@suse.com>
Release-acked-by: Henry Wang <Henry.Wang@arm.com>
27 files changed:
docs/man/xl.cfg.5.pod.in
docs/man/xl.conf.5.pod.in
tools/golang/xenlight/helpers.gen.go
tools/golang/xenlight/types.gen.go
tools/include/libxl.h
tools/libs/light/libxl.c
tools/libs/light/libxl_arch.h
tools/libs/light/libxl_arm.c
tools/libs/light/libxl_types.idl
tools/libs/light/libxl_x86.c
tools/ocaml/libs/xc/xenctrl.ml
tools/ocaml/libs/xc/xenctrl.mli
tools/ocaml/libs/xc/xenctrl_stubs.c
tools/xl/xl.c
tools/xl/xl.h
tools/xl/xl_info.c
tools/xl/xl_parse.c
xen/arch/x86/domain.c
xen/arch/x86/hvm/hvm.c
xen/arch/x86/hvm/vmx/vmcs.c
xen/arch/x86/hvm/vmx/vmx.c
xen/arch/x86/include/asm/hvm/domain.h
xen/arch/x86/include/asm/hvm/hvm.h
xen/arch/x86/sysctl.c
xen/arch/x86/traps.c
xen/include/public/arch-x86/xen.h
xen/include/public/sysctl.h